SDカードメモリ式 GPSロガー
(参考文献) ・ PICで楽しむUSB機器(改定新版) 後閑哲也 著 技術評論社
2011 9
・ カシミール3D・GPS応用編 杉本智彦 著 実業之日本社 2011 5
GPSモジュールをノートパソコン等に常につなげて使用する場合は、SDカード等の記録媒体は必ずしも必要ないが、ここでは
フリーの情報収集装置として、一旦 SDカードメモリに情報をストックして、PCにつなげたときに、PC側の操作で
GPS情報(位置、高度)を取り込む形にする。
SDカード、マイクロSDカードの動作電圧は 2.7V〜3.6Vとなっていて、現状のほとんどの機種は3.3V動作する。(* 5V系のマイコンでは間にレベル変換が必要となる。SDカードとマイコン間の通信は
SPI )
このため、GPSモジュール(GM-316)が、電源3〜6V、出力3.3Vであることも考慮して、マイコンは、PIC24FJ64GB002 (28 ピン、電源3.3V、16 ビット・マイコン、8MHz発振で 32MHz動作クロック、プログラム・フラッシュメモリ 64kB
・・・・ かなり速く、容量も大きい)を用いる。 ピンのインターフェースは USBなどの 5Vにも対応。 ( 注) PIC24FJGA002 は USB無し、 現在、秋月電子通商で売っているPIC24FJ64GA002はI2C対策版(I2C
のCh1にエラータ(欠陥)対策済み品))
また、全体の持ち運びが便利なように、電池ケース(単4×3)も入れてABS樹脂ケース(117x84x28、蝶番蓋付き)に収まるようコンパクトにするために、モニター用の
LCDは 3.3V、I2C通信(マイコンのピン節約)、かつ、小さく基板に乗る SB1602BW(バックライト付き)(ストロベリーリナックス)を用いた。(ピンの反対側の固定はエポキシで)
PICマイコンの USB通信クラスは、MSD(Mass Storage Device、大容量通信)クラスを用い、USBをつなげたとき、PCが、COMポートとしてではなく、そのまま自分のディスク・ドライブ(=リムーバブルディスク)として認識するようにする。(* MSDクラスでは、CDC(Communication
Device Class、文字通信)クラスの場合行う、PCへの「 inf ファイル」の認識も不要) データは CSV形式(エクセルでも扱える書式)で PCのファイルとして取り込まれ、ファイルの保存や
SDカードメモリの消去も、PCのファイル操作でそのまま行うことができる。
ただし、データ容量が大きいので、GPS対応の地図ソフト(カシミール3D、CSVデータ利用可)を併用し、そのために、あらかじめ装置の方で、記録するデータの段階でフォーマットを合わせておく必要がある。
1. 周辺装置の仕様:
(1) GPSモジュール:
GPSモジュールの出力データ信号(1Sおきに出力)のフォーマットは、次のように順番が決められ、衛星を捉えると
3番ピンから UART で出力し続ける。
出力: 調歩同期式 TTLインターフェース、ボーレート 4800bps(初期化サブ関数で、ピン割付(RP2、3)と共に設定)
GPGGA: $GPGGA, hhmmss.sss, ddmm.mmmm, N/S, dddmm.mmmm, E/W, v, ss, dd.d, hhhhh.h, M, gggg.g, M, XXX.X, 0000*hh <CR> <LF>
・・・・ (hhmmss.sss から順に、 9時間前の時刻(時分秒、米国・Central 基準)、 緯度: 度分、 北緯or南緯、 経度: 度分、 東経or西経、 測位状態(v = 1でGPS測位)、 捉えた衛星数(ss = 00 〜 12)、 HDOP値、 アンテナ高度(メートル)、 (単位: M = メートル)、 ジオイド高度、 (M = メートル)、・・・・ (改行): 77バイト
GPGSA: $GPGSA, A, s, xx.xx, xx, ・・・ , xx, pp.p, hh.h, vv.v*hh <CR>
<LF>
・・・・ ( s = 測位状態(1:測位不可、2:2次元測位、3:3次元測位(正常)、 ・・・・ (改行)): 47バイト
GPGSV: (省略): 60バイト(5秒に1回)
GPRMC: (省略): 72バイト
GPVTG: $GPVTG, hhh.hh, T,, M, nnn.nn, N, ssss.ss, K*hh <CR> <LF>
・・・・ ssss.ss = 速度(km/h)、 ・・・・: 38バイト
これらのデータは、一度、受信バッファにすべて格納する。
(2) SDカード:
SPI インターフェースを使用する。これは プログラムのファイルシステムに含まれている(FSIO.c、 SD-SPI.c、 FScofig.h)ので、特に作成不要。
カードの容量は、地図上にピンポイントを表示するよう 1分ごとにデータを記録するようにしたので、とりあえず
8Mバイトの低容量のSDカードを使用したが、自動車等高速で動くなど 1秒ごとに長時間トレースするような場合は、数Gバイト程度の容量のものが必要と思われる。
(3) I2C LCD:
LCDは SB1602BW(3.3V、16文字×2行、バックライト付き、ストロベリーリナックス)で、8 ビットモードで、アイコン表示も使用する。 プロジェクトフォルダに、i2C_lib2.c、 lcd_i2c_lib2.c、
i2C_lib2.h、 lcd_i2c_lib2.h を追加する。
・ ピン接続: 1: RST(負論理のリセット)、 2: SCL(
= I2C クロック)、 3: SDA( = I2C データ)、 4: GND、 5:
Vdd(2.5〜3.6V)、 (6: CAP+、 7: CAP−、 8:
Vout、) 9: (バックライトの)A、 10: (同)K
・ I2C クロック: max 400kHz、 I2C アドレス: 0b0111110
(7ビット、固定アドレス)、 スタート信号: S、 ストップ信号: P、 ACK:
LCDからの応答
・ I2C データフォーマット:
・ 制御コマンド: DBx0 〜 7: 全消去: 00000001(0x01)、 カーソル ホーム: 00000010
(0x02)、 書込みモード: 0 0 0 0 0 1 I/D S (I/D: 表示アドレスを 0で+1、1で−1、 S:
1で表示全体シフト、0でしない)、 表示制御: 0 0 0 0 1 D C B (D: 1で表示ON、 C:
1でカーソルON、 B: 1でブリンクON)、 機能制御: 0 0 1 DL N DH
0 IS (DL: 1で8 ビットモード、0で4 ビットモード、 N: 1で1/6デューティー、0で1/8デューティー、 DH:
1で倍高文字、0で標準文字、 IS: 拡張コマンド(*)、 行の表示メモリアドレス: 1
(DDRAMアドレス(7ビット)) (1行目: 0x00〜0x13、 2行目: 0x40〜0x53)
* 拡張制御コマンド: IS=0の場合: カーソルシフト: 0 0 0 1
S/C R/L * * (S/C: 1で表示もシフト、0でカーソルのみシフト)、 R/L:
1で右、0で左)、 文字メモリアドレス: 0 1 (CGRAMアドレス) 、 IS=1の場合: バイアスと内部クロック: 0
0 0 1 BS F2 F1 F、 電源・アイコン制御: 0 1 0 1 IO BO C5 C4 (IO:
1でアイコン表示ON、 BO: 1で電源ブースターON、 C5、C4: コントラスト制御)、 フォロワ制御: 0
1 1 0 F0 R<2:0>、 アイコンアドレス: 0 1 0 0 AC<3:0> (**)、 コントラスト設定: 0
1 1 1 C<3:0>
** アイコン制御アドレス(AC<3:0> のうち アイコンアドレス
3ビット、アイコンRAM 1ビット): アンテナマーク: 00H D4、 受信マーク: 04H
D4、 ログマーク: 06H D4、 電池残量マーク: 0DH D4〜D1、 など
・ LCD初期化手順: 電源ON → 100mS(40mS以上) → 0x38:
標準・8ビットモード → 0x39: 拡張・8ビットモード → 0x14:
クロック 1/5バイアス、380kHz → 0x72: コントラスト設定 → 0x5E:
電源・アイコン・コントラスト → 0x6B: フォロワ制御 → 300mS(200mS以上) → 0x38:
(もう一度)標準・8ビットモード → 0x0C: 表示ON → 0x01:
全消去(クリヤ) → 2mS以上
・・・・・ 作成ファイル参照: i2C_lib2.c、
lcd_i2c_lib2.c、 i2C_lib2.h、 lcd_i2c_lib2.h (↓)
2. マイコン・プログラム:
PIC24FJ64GB002 を扱うために、「PIC24F と dsPIC 用の C コンパイラ」 を新たにダウンロードする必要がある。 開発環境の MPLAB IDE(v 8.84)は、8ビット〜32ビットで、そのまま使うことができる。 (プログラマは、PICkit2、または、3
)
・ 評価版(無償)のダウンロード: マイクロチップのHP(http://www.microchip.com/)から、 DesignSupport 欄の Deveropement Tools → Software 欄の Complires → Evaluation(ページ下部)で コンパイラを選択し、Sign
in してからダウンロード。
(1) プロジェクト構成と ハードウェアプロファイル:
USB、UART、SPI、 I2C という 4つの異なる通信を一つのプログラムにまとめるため、必要なソースファイルと
ヘッダーファイルをすべて取り込む必要がある。
プロジェクトのフォルダを設け、Microchip フォルダ(Incude、MDD File System、USB の3つのフォルダ含む)を作っておく。(文献のCDには入っている。バージョン不明)
プロジェクトフォルダに、ソリューション: Microchip Application Libraries v2011-06-02 (現在はアーカイブから入手できる)から、> USB > Dvice−Composite−MSD+CDC > Firmware > usb_descriputors.c、 usb_config.h、 HardwareProfile_PIC24FJ256GB110PIM.h、 FSconfig.h、の4ファイルをコピーし、HardwareProfile_PIC24FJ256GB110PIM.h は HardwareProfile.h に名前を変えておく。
また、I2C LCD関係のライブラリーの4ファイル(i2C_lib2.c、lcd_i2c_lib2.c、
i2C_lib2.h、 lcd_i2c_lib2.h)も、下記のリンクから フォルダにコピーしておく。
● i2C_lib2.c、 lcd_i2c_lib2.c、 i2C_lib2.h、 lcd_i2c_lib2.h
上記の Microchip フォルダから > USB > usb_device.c、 USB > MSD
DviceDriver > usb_functuion_msd.c、 USB > CDC
DeviceDriver > usb_function_cdc.c 、 また、MDDFilesSystem > FSIO.c、 SD_SPI.c を、プロジェクトの
Source Files、Header Files に加え、左図のプロジェクト構成とする。
パスの設定は、 Project → BuildOptions → Project → Directoriesのタブ選択 → Show
directories forの欄で、各フォルダが入っているディレクトリーにつなげる。
1) Output Directories 2) Intermediary
Directories に C:¥XXX¥○○○(○○○はフォルダ名:ここではgps4)を追加、 3) Include
Search Path には、 C:¥XXX¥○○○、 C:¥XXX¥○○○¥Microchip¥Incrude、 C:¥ProgramFiles¥Microchip¥MPLAB
C30¥support¥PIC24F¥h の3つを追加、 4) LiblarySeachPath には、 C:¥ProgramFiles¥Microchip¥MPLAB
C30¥lib を追加する。
(2) ユーザーアプリ部の宣言部:
MSDクラスでは、デフォルトで、SDメモリカードという記憶装置を SCSI(スカジー)機器(周辺機器を接続する小規模システムのインタフェース・主従関係ではなく対等とする)として扱うため、MSDクラスから直接
ファイルシステム内の関数を呼び出す関数ポインタのリストと、SCSI機器のパラメータの定義を付け加える。これで、パソコンがSDカードを 自身の周辺機器として認識し、パソコンのファイル操作で直接扱えることになる。(* デフォルトのままコピーして使う。文字列部分は自由に書き換え可)
(3) メイン関数:
USB接続中と そうでない場合に分け、 @ USB接続中には、MSDTasks()を実行してファイルシステムのステートを進めると同時に、この間に パソコンから SDカードへのアクセスが行われる。 受信チェック後、送信フラグON かつ 受信完了ならば、全センテンスを USBで送信する。(USBSend() で 64バイトを送信し、そのたびにメインループを繰り返す)
A USBに接続していない場合は、GPSロガーとして機能する。 ログの時は、パソコンからのアクセスを禁止し、ファイルを 「追記モードでオープン」(csv形式) の状態にする。 GPSの最後のメッセージ(GPVTG、VTGsize=受信バイト数)を受信したら、GPS受信バッファの内容から、経度・緯度
/ 時刻・高度 などを LCDに表示する。 測位状態(GPGSAの9番目: s )が1Dよりも大きければ、ログ(ファイルへの書き込み)を実行する。
(* 注) ソリューションの2012版では、原著の ファイル追加モードで開く: FSfOPEN( )の
APPEND → FS_APPEND に修正)
(4) サブ関数群:
とりあえず、UART受信バッファに取り込まれた GPSデータのすべてを
SDカードファイルにコピーしたので、PCに送られるファイルのデータフォーマットは、カシミール3Dと合っていない。フォーマットを合わせるためには、コピーの内容を修正する必要がある。( → 3.)
GPSモジュールから受信したデータは、一度受信バッファ(SavBuf)に入れる。 UART割込み処理関数内では、
・ data が ”0x0A”(=改行)に来た時点でセンテンスの終わりと判断し、バイト数を得て
ポインタをリセットし、
・ if (memcmp (SavBuf, "$GPGGA", 6) == 0 : SavBuf の最初の6文字(6バイト分)が
"$GPGGA"に等しい(戻り値:0)、ならば、GGABuf に書き込むことで、(他も同様に、)各センテンスを各バッファに分別する。
(5) USBイベント処理関数、デスクリプタの詳細:
MSDクラスと CDCクラスの両方のエンドポイントを初期化する必要があるので、USBイベント処理関数を例題からコピーしてメインプログラムに追加する。
また、usb_descriptors.c より、MSDクラスで、エンドポイントを2個持ち、2個のバルク転送モードのエンドポイントは IN:64バイト と OUT:64バイト の1個ずつが定義されている。 CDCクラスでは、エンドポイントを3個持ち、CDC固有のデスクリプタが定義され、インタラプト転送モード IN:8バイト、バルク転送モード IN:64バイト、OUT:64バイト となっている。
3. カシミール3D のための フォーマット変更:
GPS地図ソフト(日本のみ対応)カシミール3Dで対応できる CSV形式は、次のフォーマットで与えられる。 各項目の間には カンマ(,)を入れる。 下の括弧の文字や桁数の足りない数値は無くてもよい。”名称”は、付けると
地図上でウエイポイントを表示する際、横にその名称を付けることができる。 ルート、トラックには
ヘッダを付ける。
また、ウエイポイント、ルート、トラックの いずれか一つのデータがあれば、ソフト内の 編集 → データエディタ の操作で
互いに変換可能で表示される。
1) ウエイポイント:
経度、緯度の表示はすべて dd°( ddd°) mm′ ss.s″ になるので、秒の部分の60進法への換算が必要。
種別 | 名称 | 緯度 | 経度 | 標高 | 日付 | 時刻 | 測地系 | 方位 | 仰角 | アイコン | GPSでの名前 | 説明 |
W1 | (ポイント1) | 35.44660 | 138.28082 | 56.8 | (2012−01−01) | 15:12:56 | (WGS84) | |||||
W2 | (ポイント2) | 35.44689 | 138.28093 | 58.1 | (2012−01−01) | 15:13:06 | (WGS84) | |||||
・・・・ | ・・・・・ | ・・・・・・ | ・・・・・・ | ・・・・ | ・・・・・・ | ・・・・・・ | ・・・・・ | ・・・ | ・・・ | ・・・・ | ・・・・・・ | ・・・ |
W10 | (ポイント10) | 35.44741 | 138.28123 | 61.6 | (2012−01−01) | 15:14:26 | (WGS84) |
例えば、 W1,point1,35.44660,138.28082,56.8,2012-01-01,15:12:56,WGS84, あるいは、
W1,,35.44660,138.28082,56.8,,15:12:56, などの形になる。(”名称”、”日付”のように、 , と , の間にデータが無ければ
そのままで良い)
2) ルート:
ヘッダ | 名称 | 線色(R) | 線色(G) | 線色(B) | 線幅 | 線スタイル |
H1 | (My Rourte) | 255 | 0 | 0 | 2 | 1 |
種別 | 名称 | 緯度 | 経度 | 標高 | 日付 | 時刻 | 測地系 | 方位 | 仰角 | アイコン | GPSでの名前 | 説明 |
R1 | (ポイント1) | 35.44660 | 138.28082 | 56.8 | (2012−01−01) | 15:12:56 | (WGS84) | |||||
R2 | (ポイント2) | 35.44689 | 138.28093 | 58.1 | (2012−01−01) | 15:13:06 | (WGS84) | |||||
・・・・ | ・・・・・ | ・・・・・・ | ・・・・・・ | ・・・・ | ・・・・・・ | ・・・・・・ | ・・・・・ | ・・・ | ・・・ | ・・・・ | ・・・・・・ | ・・・ |
R10 | (ポイント10) | 35.44741 | 138.28123 | 61.6 | (2012−01−01) | 15:14:26 | (WGS84) |
例えば、 H1,My Rourte,255,0,0,2,1 R1,r0001,35.44660,138.28082,56.8, ,15:12:56,
3) トラック:
ヘッダ | 名称 | 線色(R) | 線色(G) | 線色(B) | 線幅 | 線スタイル |
H1 | (My Rourte) | 255 | 0 | 0 | 2 | 1 |
種別 | 名称 | 緯度 | 経度 | 標高 | 日付 | 時刻 | 測地系 | 方位 | 仰角 |
T1 | (ポイント1) | 35.44660 | 138.28082 | 56.8 | (2012−01−01) | 15:12:56 | (WGS84) | ||
T2 | (ポイント2) | 35.44689 | 138.28093 | 58.1 | (2012−01−01) | 15:13:06 | (WGS84) | ||
・・・・ | ・・・・・ | ・・・・・・ | ・・・・・・ | ・・・・ | ・・・・・・ | ・・・・・・ | ・・・・・ | ・・・ | ・・・ |
T10 | (ポイント10) | 35.44741 | 138.28123 | 61.6 | (2012−01−01) | 15:14:26 | (WGS84) |
例えば、 H1,My Rourte,255,0,0,2,1 T1,r0001,35.44660,138.28082,56.8, ,15:12:56
● ウエイポイント用の配列を作成する関数:
GPSからの受信データ GPGGA 〜 GPVTG までのすべてのデータをRAMに一時保存するが、SDカードメモリには、カシミール3Dに必要なGPGGAの一部だけを記録する。
関数 Logging( ) で、緯度・経度の秒値を換算し、データの再配列を行った。 データのSDカードへの記録は、10秒に1回(*)とし、USB送信ステート SendState = 1 もここに持ってきた。
(* 徒歩: 1分、 自転車: 10秒、 自動車: 1秒 などが目安。
インターバルが短いと SDカードの容量も大きいものが必要になる)
・ 文字列を 整数値に変換するのに、 math.h に含まれる atoi 関数を用いる。(atoi(&
buf[n] ) で n番目のバッファから 数字文字が終わるまで読み込み、int
型 変数値に変換する。(e、E 以外の文字に当たると止まる) cf. atof
関数 ・・・ 小数点を含む文字列を 浮動小数型変数(float)に変換
・ 高度の文字列は 可変長対応が必要
また、時刻の 日本時間への換算は、GPS・UARTデータから RAMに記録する GGABuf[
] を作るところで行った。(9時間を足す。 LCD表示も日本時刻)
● ソース: (カシミール3D 出力用) (PIC24FJ64GB002 プログラムメモリ: 51kバイト(/64kバイト) = 78%使用)
hex ファイル: (カシミール3D 出力用)、 hexファイル(U1BRG =103(9600bps用)) (バージョンの違いによって動かない場合用いてください) ・・・ 付録ソフトと別フォルダで作って USBにつなげてもパソコンが反応しない場合は、main
の if((USBDeviceState >= CONFIGURED_STATE)&&(USBSuspendControl!=1)){ MSDTasks(); の後に、
delay_us(300); を入れると動きます。(パソコンに待ち時間要)
カシミール3Dのソフトから、 ツール → GPSファイルツール → CSV形式から読み込み で、ウエイポイントがそのまま地図上に表示される。
また、編集 → GPSデータ編集 → 変換 で ルート、トラックに変換できる。
* 街中や 高度測定では 移動時の受信状態を改善するために、マイクロ波用のアンテナを立てたほうが良いと思われる。 ・・・・ MMCXコネクタから、ターンスタイル・アンテナ(φ2.0のホルマル線:96mm(λ/2より7%長い)と83.8mm(λ/2より7%短い)の2つのダイポールをクロスさせる、真上の指向性が良い)を設ける。マイクロ波の周波数1.575GHz、波長短縮率94%(線の太さによる)
(参考) 相対論による時間の進み誤差:
光速(真空) c = 2.99792458 × 108 m/s、 衛星と受信機の距離 c t = R、 衛星の位置(X、Y、Z)、 受信機の位置(x、y、z)、 そこで生じる時間の誤差をδとすると、
(R − cδ)2 = (X − x)2 + (Y − y)2 + (Z − z)2 ・・・・・ δ: 衛星の原子時計(11〜15桁)と 受信機の水晶時計(5〜7桁)の時間誤差
未知変数(x、y、z、δ)は4つなので、3次元測位(3D)計測には 4本以上の連立方程式を解く必要があり、最低4個以上のGPS衛星を捉える必要がある。
・ 日本で受信可能な衛星数は、理想的に空が開けている場合 6〜10個程度
・ GPS通信規格 WGS84 は、地球を赤道付近が膨らんだ回転楕円体として近似した3次元曲面で、多くのポータブルGPS受信機がこのデータを持っている。(上記の
GPSモジュールも)
さて、上空 約20200kmでほぼ円運動している GPS衛星は、相対論効果により、地上の受信機よりも 時間が速く進む。そのため、GPS衛星搭載の原子時計は、地上の原子時計よりも遅く進むよう調整されている。相対論の時間の進み方への寄与(1秒あたりの変化(秒))は 下表のとおり。
測定しようとしても、例えば 10GHzで 0.1Hzの桁が変わるかどうかくらい。
1日あたりの誤差(×3600×24)でも、 4×10-5S程度となる。しかし、距離の誤差としては、1日あたり 4×10-5(S)×3×108(m/S) = 約12kmにもなるので、決して無視することはできない。
GPS衛星 | 国際宇宙ステーション(ISS) | 月(月面) | |||
高度(月は軌道半径) | 20200km | 388km | 384400km | ||
軌道速度 | 3.88km/s | 7.675km/s | 1.022km/s | ||
地球重力場(一般相対論効果) | −5.29×10-10秒/秒 | −0.40×10-10秒/秒 | −6.85×10-10秒/秒 | ||
軌道運動(特殊相対論効果) | +0.84×10-10秒/秒 | +3.23×10-10秒/秒 | +0.06×10-10秒/秒 | ||
月の重力場(一般相対論効果) | − | − | +0.31×10-10秒/秒 | ||
総合的効果 | −4.46×10-10秒/秒 ・ GPS衛星では、地上より 4.46×10-10秒/秒 速く進む ・ GPS衛星の1秒 = 地上の 0.999999999554 秒 |
+2.88×10-10秒/秒 ・ 宇宙ステーションでは、地上より 2.88×10-10秒/秒 遅れる ・ ISSでの1秒 = 地上の 1.000000000288秒 |
−6.48×10-10秒/秒 ・ 月面では、地上より 6.48×10-10秒/秒 速く進む ・ 月面での1秒 = 地上の 0.999999999352秒 |
ただし、 G = 6.6738×10-11m3kg-1s-2、 c = 299792km/s、 M(地球) = 5.9736×1024kg、 M(月) = 7.348×1022kg、 R(地球) = 6,378km、 R(月) = 1,737km
● 相対論効果によるGPS時間の計算:
GPS衛星は かなり上空を飛行するので、地球重力から脱した分の 一般相対論効果の寄与が大きい。 そこでこの効果を、地球重力場の重力ポテンシャル φ(r) から計算してみる。
1) 一般相対論効果(重力): 球対称で、静的(時間によらない)な場合、計量は シュバルツシルド解( → 重力場の方程式とその解 2. 参照)、
で与えられる。 さらに、弱い重力の場合(r が充分大きい場合)は、非相対論的になり、
で近似できる。 φ は 重力ポテンシャルで、 φ = −GM/r。 したがって、地上(E: 固有時 dτ)と衛星(S: d t )は次のように近似される。
・・・・ (1)
したがって、高さの違う2地点の重力ポテンシャルの差に比例して時間の進み方が変化する。 また、この
dτ/d t は、赤方偏移: = dνE /dνS と同じ。
2) 特殊相対論効果(速度): これは ローレンツ因子からそのまま、
・・・・・ (2)
∴ 総合的な時間効果は (1)、(2)の総和となり、
・・・・ (3)
衛星の飛行高度: h、 地球の半径: R とすると、 Δφ = GM(1/(R + h) − 1/R)
§ マイコンと パソコンとの関係から 示されること(Part2):
SDカード、CFカード、内蔵フラッシュメモリなどの 大容量記録装置に限っての話ですが、USBのMSDクラスは、CDCクラスのような”主従関係”ではなく ”対等”の扱いです。 それは、FATファイルシステム(FSIO.c、FAT16で 最大2GB、FAT32で2TB)、SCSI(スカジー)機器として扱うプログラム(周辺機器を接続する小規模システムのインタフェース))が初めから用意されているためです。
USBにつなげているときは装置自身がパソコンに完全に取り込まれるため、リムーバルディスクとしてパソコンでの操作の一部となり、また、”inf ファイル”のような”通行証”も不要となりました。 MSD + CDC で、CDC(文字通信)はありますが、マスターとスレーブの関係ではありません。
旧約時代は、王、祭司、預言者といったような 非常に限られた人々にしか
聖霊様の油注ぎが与えられませんでした。 神の国とのコミュニケーションはすべて、彼らを通してのみ行われていたのです。
しかし、新約時代は、主イエス・キリストの十字架によって、この「神殿の幕」が取り払われ、信じる者には誰でも聖霊様が与えられ、直接、神様とコミュニケーションを持つことができるようになりました。 永遠の初めから備えられていた 「救い」のシステムに取り込まれたのです。
今の時代は 「恵みの時」(Uコリント6:2)であり、信じる者は、「万民祭司」であり、「神の子供」です。 聖霊様はその「証印」です。